Storing a database (rows and indexes) entirely in non-volatile memory (NVM) potentially enables both high performance and fast recovery. To fully exploit parallelism on modern CPUs, modern main-memory databases use latch-free (lock-free) index structures, e.g. Bw-tree or skip lists. To achieve high performance NVM-resident indexes also need to be latch-free. Many such designs are complex to implement and require special-purpose recovery code. Further, different versions may be needed for RAM and NVM, which greatly increases the cost of code maintenance.